home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacUser ROM 45
/
MACUSER-ROM-VOL-45-1997-08.ISO.7z
/
MACUSER-ROM-VOL-45-1997-08.ISO
/
本誌連動
/
第9回:ウイークエンドデベロッパーへの道
/
QuickCinema 1.0
/
Source code
/
WindowUnit.c
< prev
Wrap
Text File
|
1997-04-27
|
4KB
|
110 lines
/*------------------------------------------------------------------------------
* プログラム名: QuickCinema 1.0.0
* ファイル名: WindowUnit.c
*-----------------------------------------------------------------------------*/
#include "QuickCinema.h"
#include "ProtoType.h"
//----------------------------------------------------------------------------------//
// 定数定義 //
//----------------------------------------------------------------------------------//
//----------------------------------------------------------------------------------//
// グローバル変数 //
//----------------------------------------------------------------------------------//
extern Boolean gQuitApplication;
extern Boolean gIsBackground;
extern SInt32 gSleepTime;
extern AEAddressDesc gSelfAddress;
//----------------------------------------------------------------------------------//
// プロトタイプ //
//----------------------------------------------------------------------------------//
// void ShowTemporaryWindow(void)を削除し、ムービーウィンドウ専用の
// 表示ルーチンをMovieTheater.c上に作成する
//----------------------------------------------------------------------------------//
// ウィンドウの廃棄処理 //
//----------------------------------------------------------------------------------//
void CloseTheWindow(WindowRef window)
{
if (IsDAWindow(window))
CloseDeskAcc(((WindowPeek)window)->windowKind);
else
{
// ムービーウィンドウ専用の処理を実行する
if (IsMovieWindow(window))
DisposeMovieWindow(window);
else
{
CloseWindow(window);
DisposePtr((Ptr)window);
}
}
}
//----------------------------------------------------------------------------------//
// アップデートイベント処理 //
//----------------------------------------------------------------------------------//
void HandleUpdateWindow(WindowRef window)
{
GrafPtr savePort;
RgnHandle updateRgn;
GetPort(&savePort);
SetPort(window);
BeginUpdate(window);
updateRgn = GetWindowPort(window)->visRgn;
if (!EmptyRgn(updateRgn))
{
EraseRgn(updateRgn);
}
EraseRect(&window->portRect);
EndUpdate(window);
SetPort(savePort);
}
//----------------------------------------------------------------------------------//
// アクティベートイベント処理 //
//----------------------------------------------------------------------------------//
void HandleActivateWindow(WindowRef window, Boolean becomeActive)
{
// ムービーウィンドウ専用の処理を実行する
if (IsMovieWindow(window))
HandleMovieActivate(window, becomeActive);
}
//----------------------------------------------------------------------------------//
// コンテントリージョンに対するイベント処理 //
//----------------------------------------------------------------------------------//
void HandleContentWindow(WindowRef window, const EventRecord *event)
{
#pragma unused (event)
if (window != FrontWindow())
SelectWindow(window);
else
{
}
}
//----------------------------------------------------------------------------------//
// タイトルバーに対するイベント処理 //
//----------------------------------------------------------------------------------//
void HandleDragWindow(WindowRef window, const EventRecord *event)
{
// ムービーウィンドウ専用の処理を実行する
if (IsMovieWindow(window))
DragAlignedWindow(window, event->where,
&qd.screenBits.bounds, nil, nil);
else
DragWindow(window, event->where, &qd.screenBits.bounds);
}